

c----------------------------------------------------------
c														   
c						LIBMESH V 7.0					   
c														   
c----------------------------------------------------------
c														   
c	Description:		handle .meshb file format I/O	   
c	Author:				Loic MARECHAL					   
c	Creation date:		dec 08 2015						   
c	Last modification:	jan 18 2016						   
c														   
c----------------------------------------------------------


c     Procedures definition
      external gmfopenmesh
      external gmfclosemesh
      external gmfstatkwd
      external gmfsetkwd
	  external gmfgotokwd
	  external gmfgetlin
	  external gmfsetlin
      external gmfgetblock
      external gmfsetblock

      integer*8 gmfopenmesh
      integer gmfclosemesh
      integer gmfstatkwd
      integer gmfsetkwd
      integer gmfgotokwd
      integer gmfgetlin
      integer gmfsetlin
      integer gmfgetblock
      integer gmfsetblock


c     Parameters definition
      integer gmfmaxtyp
      integer gmfmaxkwd
      integer gmfread
      integer gmfwrite
      integer gmfsca
      integer gmfvec
      integer gmfsymmat
      integer gmfmat
      integer gmffloat
      integer gmfdouble
	  integer gmfint
	  integer gmflong

      parameter (gmfmaxtyp=1000)
      parameter (gmfmaxkwd=93)
      parameter (gmfread=1)
      parameter (gmfwrite=2)
      parameter (gmfsca=1)
      parameter (gmfvec=2)
      parameter (gmfsymmat=3)
      parameter (gmfmat=4)
      parameter (gmffloat=1)
      parameter (gmfdouble=2)
	  parameter (gmfint=3)
	  parameter (gmflong=4)


c     Keywords list
      integer gmfmeshversionformatted
      integer gmfdimension
      integer gmfvertices
      integer gmfedges
      integer gmftriangles
      integer gmfquadrilaterals
      integer gmftetrahedra
      integer gmfprisms
      integer gmfhexahedra
      integer gmfiterationsall
      integer gmftimesall
      integer gmfcorners
      integer gmfridges
      integer gmfrequiredvertices
      integer gmfrequirededges
      integer gmfrequiredtriangles
      integer gmfrequiredquadrilaterals
      integer gmftangentatedgevertices
      integer gmfnormalatvertices
      integer gmfnormalattrianglevertices
      integer gmfnormalatquadrilateralvertices
      integer gmfangleofcornerbound
      integer gmftrianglesp2
      integer gmfedgesp2
      integer gmfsolatpyramids
      integer gmfquadrilateralsq2
      integer gmfisolatpyramids
      integer gmfsubdomainfromgeom
      integer gmftetrahedrap2
      integer gmffault_neartri
      integer gmffault_inter
      integer gmfhexahedraq2
      integer gmfextraverticesatedges
      integer gmfextraverticesattriangles
      integer gmfextraverticesatquadrilaterals
      integer gmfextraverticesattetrahedra
      integer gmfextraverticesatprisms
      integer gmfextraverticesathexahedra
      integer gmfverticesongeometricvertices
      integer gmfverticesongeometricedges
      integer gmfverticesongeometrictriangles
      integer gmfverticesongeometricquadrilaterals
      integer gmfedgesongeometricedges
      integer gmffault_freeedge
      integer gmfpolyhedra
      integer gmfpolygons
      integer gmffault_overlap
      integer gmfpyramids
      integer gmfboundingbox
      integer gmfbody
      integer gmfprivatetable
      integer gmffault_badshape
      integer gmfend
      integer gmftrianglesongeometrictriangles
      integer gmftrianglesongeometricquadrilaterals
      integer gmfquadrilateralsongeometrictriangles
      integer gmfquadrilateralsongeometricquadrilaterals
      integer gmftangents
      integer gmfnormals
      integer gmftangentatvertices
      integer gmfsolatvertices
      integer gmfsolatedges
      integer gmfsolattriangles
      integer gmfsolatquadrilaterals
      integer gmfsolattetrahedra
      integer gmfsolatprisms
      integer gmfsolathexahedra
      integer gmfdsolatvertices
      integer gmfisolatvertices
      integer gmfisolatedges
      integer gmfisolattriangles
      integer gmfisolatquadrilaterals
      integer gmfisolattetrahedra
      integer gmfisolatprisms
      integer gmfisolathexahedra
      integer gmfiterations
      integer gmftime
      integer gmffault_smalltri
      integer gmfcoarsehexahedra
      integer gmfcomments
  	  integer gmfperiodicvertices
  	  integer gmfperiodicedges
  	  integer gmfperiodictriangles
  	  integer gmfperiodicquadrilaterals
  	  integer gmfprismsp2
  	  integer gmfpyramidsp2
  	  integer gmfquadrilateralsq3
  	  integer gmfquadrilateralsq4
  	  integer gmftrianglesp3
  	  integer gmftrianglesp4
  	  integer gmfedgesp3
  	  integer gmfedgesp4

      parameter (gmfmeshversionformatted=1)
      parameter (gmfdimension=3)
      parameter (gmfvertices=4)
      parameter (gmfedges=5)
      parameter (gmftriangles=6)
      parameter (gmfquadrilaterals=7)
      parameter (gmftetrahedra=8)
      parameter (gmfprisms=9)
      parameter (gmfhexahedra=10)
      parameter (gmfiterationsall=11)
      parameter (gmftimesall=12)
      parameter (gmfcorners=13)
      parameter (gmfridges=14)
      parameter (gmfrequiredvertices=15)
      parameter (gmfrequirededges=16)
      parameter (gmfrequiredtriangles=17)
      parameter (gmfrequiredquadrilaterals=18)
      parameter (gmftangentatedgevertices=19)
      parameter (gmfnormalatvertices=20)
      parameter (gmfnormalattrianglevertices=21)
      parameter (gmfnormalatquadrilateralvertices=22)
      parameter (gmfangleofcornerbound=23)
      parameter (gmftrianglesp2=24)
      parameter (gmfedgesp2=25)
      parameter (gmfsolatpyramids=26)
      parameter (gmfquadrilateralsq2=27)
      parameter (gmfisolatpyramids=28)
      parameter (gmfsubdomainfromgeom=29)
      parameter (gmftetrahedrap2=30)
      parameter (gmffault_neartri=31)
      parameter (gmffault_inter=32)
      parameter (gmfhexahedraq2=33)
      parameter (gmfextraverticesatedges=34)
      parameter (gmfextraverticesattriangles=35)
      parameter (gmfextraverticesatquadrilaterals=36)
      parameter (gmfextraverticesattetrahedra=37)
      parameter (gmfextraverticesatprisms=38)
      parameter (gmfextraverticesathexahedra=39)
      parameter (gmfverticesongeometricvertices=40)
      parameter (gmfverticesongeometricedges=41)
      parameter (gmfverticesongeometrictriangles=42)
      parameter (gmfverticesongeometricquadrilaterals=43)
      parameter (gmfedgesongeometricedges=44)
      parameter (gmffault_freeedge=45)
      parameter (gmfpolyhedra=46)
      parameter (gmfpolygons=47)
      parameter (gmffault_overlap=48)
      parameter (gmfpyramids=49)
      parameter (gmfboundingbox=50)
      parameter (gmfbody=51)
      parameter (gmfprivatetable=52)
      parameter (gmffault_badshape=53)
      parameter (gmfend=54)
      parameter (gmftrianglesongeometrictriangles=55)
      parameter (gmftrianglesongeometricquadrilaterals=56)
      parameter (gmfquadrilateralsongeometrictriangles=57)
      parameter (gmfquadrilateralsongeometricquadrilaterals=58)
      parameter (gmftangents=59)
      parameter (gmfnormals=60)
      parameter (gmftangentatvertices=61)
      parameter (gmfsolatvertices=62)
      parameter (gmfsolatedges=63)
      parameter (gmfsolattriangles=64)
      parameter (gmfsolatquadrilaterals=65)
      parameter (gmfsolattetrahedra=66)
      parameter (gmfsolatprisms=67)
      parameter (gmfsolathexahedra=68)
      parameter (gmfdsolatvertices=69)
      parameter (gmfisolatvertices=70)
      parameter (gmfisolatedges=71)
      parameter (gmfisolattriangles=72)
      parameter (gmfisolatquadrilaterals=73)
      parameter (gmfisolattetrahedra=74)
      parameter (gmfisolatprisms=75)
      parameter (gmfisolathexahedra=76)
      parameter (gmfiterations=77)
      parameter (gmftime=78)
      parameter (gmffault_smalltri=79)
      parameter (gmfcoarsehexahedra=80)
      parameter (gmfcomments=81)
  	  parameter (gmfperiodicvertices=82)
  	  parameter (gmfperiodicedges=83)
  	  parameter (gmfperiodictriangles=84)
  	  parameter (gmfperiodicquadrilaterals=85)
  	  parameter (gmfprismsp2=86)
  	  parameter (gmfpyramidsp2=87)
  	  parameter (gmfquadrilateralsq3=88)
  	  parameter (gmfquadrilateralsq4=89)
  	  parameter (gmftrianglesp3=90)
  	  parameter (gmftrianglesp4=91)
  	  parameter (gmfedgesp3=92)
  	  parameter (gmfedgesp4=93)
